package com.flying.abs;

/**
 * @author 刘鹏飞
 * @Classname AbstractDemo
 * @Date 2024/12/13 1:22
 * @Created by 刘鹏飞
 * @Description 测试抽象类
 * TODO：
       使用关键字 abstract 来声明一个抽象方法
       抽象方法的特点 : 没有方法体，如果一个类里有抽象方法，那么这个类必须要定义成抽象类！
       一个抽象类里可以没有抽象方法
       如果一个类继承了抽象类，必须要实现类里所有的抽象方法
       如果子类没有实现父类的抽象方法，子类也必须要定义成抽象类
       抽象类不能直创接建对象，除非在创建对象时实现抽象方法
  */
public class AbstractDemo {

    public static void main(String[] args) {


        PoliceWorkDog policeWorkDog = new PoliceWorkDog("大黄", 5);

        policeWorkDog.work();
        policeWorkDog.eat("骨头");


        DrugWorkDog drugWorkDog = new DrugWorkDog("小黑", 2);
        drugWorkDog.work();


        WorkDog workDog = new WorkDog() {
            @Override
            public void work() {
                System.out.println("工作犬怎在工作");
            }
        };

        workDog.work();


    }
}
